草庐IT

HTTP 服务器

全部标签

http - PUT 使用流和进度上传文件的字节范围

我刚开始使用Go,需要一些帮助。我想从文件上传一定范围的字节。我已经通过将字节读入缓冲区来完成此操作。但这会增加内存使用量。我不想将字节读入内存,而是想在上传时流式传输它们并获得上传进度。我在Node.js中做了类似的事情,但很难为Go拼凑拼图。我现在拥有的代码如下所示:funcuploadChunk(id,mimeType,uploadURL,filePathstring,offset,sizeuint){//openfilefile,err:=os.Open(filePath)panicCheck(err,ErrorFileRead)//customerrorhandlerdefe

go - 如何使用返回自身以进行链接的方法为复杂的 http 客户端(如 gorequest)编写接口(interface)

我正在编写一个包,它需要将*gorequest.SuperAgent的实例传递给子包中的方法//main.gofuncmain(){req:=gorequest.New()result:=subpackage.Method(req)fmt.Println(result)}//subpackage.gofuncMethod(req*gorequest.SuperAgent)string{req.Get("http://www.foo.com").Set("bar","baz")_,body,_:=req.End()returnbody}我一直在兜圈子试图为gorequestsuperag

sockets - UDP 套接字未从 Go 中的服务器读取

我正在开发一个快速的dns客户端,只是为了搞乱但是我在读取服务器响应时遇到了麻烦,因为它永远不会到达,我知道它确实做到了,因为我打开了WireShark,它读取了数据包。这是代码示例(8.8.8.8是GoogleDNS,十六进制消息是有效的DNS查询):packagemainimport("fmt""net""encoding/hex""bufio")funcCheckError(errerror){iferr!=nil{fmt.Println("Error:",err)}}funcmain(){Conn,err:=net.Dial("udp","8.8.8.8:53")CheckEr

http - 由于来自服务器的 mime 不正确,无法使用 Go 打开 Zip

我有一个向服务器发送zip文件的应用程序。然后对zip进行操作,并在响应中发回一个新的zip。问题是发回的响应有application/octet-stream而不是application/zip消息的mime。我认为这就是为什么archive/zip无法打开生成的zip并且我得到一个zip:notavalidzipfile的原因。在检索zip文件时,我有什么办法可以更改mime吗?我获取zip的代码:funcGetZipFromServer(zipnamestring){//////////////////////////////////////////////////////Ope

google-app-engine - 当代码在本地开发服务器上工作时,为什么 GAE 返回服务器错误?

我正在尝试使用GoogleAppEngine测试数据存储功能,我的代码在本地开发服务器中按预期工作://codebasedonthefollowingguide:https://cloud.google.com/datastore/docs/reference/libraries#client-libraries-install-gopackagedatastoretestimport("fmt""log""net/http""cloud.google.com/go/datastore""google.golang.org/appengine")typeTaskstruct{Descr

go - 无法构建对撞机(Go 中基于 websocket 的信令服务器)

我正在尝试构建apprtc信令服务器(对撞机)。根据教程,我们只需要输入gogetcollidermain设置$GOPATH后。但是我得到了这样的错误>gogetcollider/collidermainsrc/collider/collidermain/main.go:9:2:nobuildableGosourcefilesin/home/abdulmanaf/poc/apprtcNewVersion/apprtc/src/collider然后我尝试构建collider文件夹。但是我得到了这样的错误>gogetcollider/collider#golang.org/x/net/we

mongodb - 在 http 中输出一个 .mp4 文件,从数据库中提取到浏览器

已回答我在使用Mongodb和Gridfs时遇到了困难,将其与Go的http包一起使用。我正在尝试将一个.mp4文件存储到Gridfs中,然后将其拉出到浏览器中进行播放。HereswhatIamdoingnow.Itsuccessfullypullsthefilefromdatabase,Icouldevenwriteitcorrectlytoadownloadlocation.//Connecttodatabase//Sessiontodatabasefuncmovie(whttp.ResponseWriterr*http.Request){file,err:=db.GridFS("

php - GoLang Web 服务器在 Json 响应中发送参数结构的描述

事情是这样的:我已经在大型系统(PHP)上工作了几年,现在,我决定放弃部分繁重的工作,转而使用golang脚本。到目前为止,我将一些php脚本复制到了一个go版本中。然后,我能够对哪个选项更好进行基准测试(好的,我知道go更快,但我需要curl或sockets进行通信,所以,我必须检查它是否仍然值得)。其中一个脚本只是生成一个随机代码,检查这个新代码是否已经被使用(在mysqldb上),如果没有,记录新代码并返回它,如果已经被使用,就递归调用函数再次直到找到独占代码。非常简单。我已经在php中有了这个代码生成器,所以,在go中写了一个新的,被称为带有json参数的http/post。使

go - 使用计数器,服务器崩溃后如何继续计数?

我用Go编写了一个简单的客户端Prometheus。它只是创建一个计数器并将其递增3次:counter=prometheus.NewCounter(prometheus.CounterOpts{Name:"test_count_0",Help:"Justatestman,noworries",})counter.Inc()counter.Inc()counter.Inc()在Prometheus选项卡中,运行后使用查询“test_count_0”,我可以在图表上看到“3”。一切顺利。但是,如果我再次运行客户端,图表上会出现另一个“3”。我期待“6”(我认为使用相同的名称会自动更新以前的

http - 在 golang X ms 之后以编程方式关闭 http 连接

我正在执行X个并行http请求,当其中一个请求在X毫秒(假设为100毫秒)或更短时间内没有响应时,我想切断此连接。我写的代码似乎不起作用,我怎样才能切断连接并得到nil的响应?这是我的示例代码:cx,cancel:=context.WithCancel(context.Background())ch:=make(chan*HttpResponse)varresponses[]*HttpResponsetimeout:=1.000//1msfortestingpurposesvarclient=&http.Client{Timeout:1*time.Second,}startTime:=